/*
 * This file contains patch control flags.
 *
 * In principle you should be able to mix and match any patches
 * you may want. In cases where patches are logically incompatible
 * one patch may take precedence over the other as noted in the
 * relevant descriptions.
 */

/* Patches */

/* alpha 补丁增加了终端的透明度。
 * 需要取消config.mk中相应行的注释才能使用-lXrender库
 * 当包含此补丁时。
 * https://st.suckless.org/patches/alpha/
 */
#define ALPHA_PATCH 1

/* alpha 焦点高光补丁允许用户指定两个不同的不透明度值或
 * 背景颜色以便轻松区分聚焦和未聚焦的终端
 * 窗户。这取决于 alpha 补丁。
 * https://github.com/juliusHuelsmann/st-focus/
 * https://st.suckless.org/patches/alpha_focus_highlight/
 */
#define ALPHA_FOCUS_HIGHLIGHT_PATCH 0

/* 为 st 添加渐变透明度，具体取决于 alpha 补丁。
 * https://st.suckless.org/patches/gradient/
 */
#define ALPHA_GRADIENT_PATCH 0

/* 允许将终端的初始大小指定为像素宽度和高度
 * 使用 -G 命令行选项。可以与任意尺寸的贴片结合使用，还可以
 * 窗口大小可以调整为任意像素大小。
 * https://st.suckless.org/patches/anygeometry/
 */
#define ANYGEOMETRY_PATCH 0

/* 该补丁允许 st 调整大小到任何像素大小，而不是捕捉到字符宽度/高度。
 * https://st.suckless.org/patches/anysize/
 */
#define ANYSIZE_PATCH 0

/* anysize 补丁的一个简单变体，仅更改调整大小提示以允许窗口
 * 可以调整为任意大小。
 */
#define ANYSIZE_SIMPLE_PATCH 0

/* 以 Farbfeld 格式绘制背景图像来代替 defaultbg 颜色，从而允许伪
 * 透明度。
 * https://st.suckless.org/patches/background_image/
 */
#define BACKGROUND_IMAGE_PATCH 0

/* 该补丁添加了当 SIGUSR1 信号出现时重新加载背景图像配置的功能
 * 已收到, e.g.: killall -USR1 st
 * Depends on the BACKGROUND_IMAGE_PATCH.
 */
#define BACKGROUND_IMAGE_RELOAD_PATCH 0

/* 该补丁允许使用闪烁光标。
 * 仅光标样式 0、1、3、5 和 7 闪烁。相应地设置光标样式。
 * 光标样式在这里定义：
 *    https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps-SP-q.1D81
 * https://st.suckless.org/patches/blinking_cursor/
 */
#define BLINKING_CURSOR_PATCH 0

/* 默认情况下，粗体文本以当前颜色的明亮变体的粗体字体呈现。
 * 此补丁使粗体文本简单地呈现为粗体，而颜色不受影响。
 * https://st.suckless.org/patches/bold-is-not-bright/
 */
#define BOLD_IS_NOT_BRIGHT_PATCH 0

/* TEST: 此补丁添加了线条/块/盲文字符的自定义渲染，以实现无缝对齐。
 * https://st.suckless.org/patches/boxdraw/
 */
#define BOXDRAW_PATCH 1

/* 默认情况下 st 仅在选择时设置 PRIMARY。
 * 此补丁使 st 在选择时设置剪贴板。
 * https://st.suckless.org/patches/clipboard/
 */
#define CLIPBOARD_PATCH 0

/* 这个补丁允许在终端窗口打开时调整 st 的大小而不切断文本
 * 再次变大。当终端窗口变小时，文本不会换行，您可以
 * 还想看看回流焊补丁。
 *
 * https://github.com/bakkeby/st-flexipatch/issues/34
 */
#define COLUMNS_PATCH 0

/* 选择并复制使用 Mod+l 显示的最后一个 URL。多次调用循环
 * 可用的 URL。
 * https://st.suckless.org/patches/copyurl/
 */
#define COPYURL_PATCH 0

/* 选择并复制使用 Mod+l 显示的最后一个 URL。多次调用循环
 * 可用的 URL。此变体还突出显示选定的 URL。
 * https://st.suckless.org/patches/copyurl/
 */
#define COPYURL_HIGHLIGHT_SELECTED_URLS_PATCH 0

/* 此补丁添加了对 CSI 转义序列 22 和 23 的支持，这可以保存和
 * 恢复窗口标题（例如 nvim 在打开和关闭时执行此操作）。
 * https://st.suckless.org/patches/csi_22_23/
 */
#define CSI_22_23_PATCH 0

/* 根据规范（参见 BLINKING_CURSOR_PATCH 中的链接）“设置光标样式
 * (DECSCUSR), VT520." 转义序列将 0 和 1 值定义为闪烁块，
 * 1 为默认值。
 *
 * 该补丁允许在使用值 0 时设置默认光标，而不是
 * 将光标设置为闪烁块。
 *
 * 这允许像这样的命令将光标恢复到 st 配置的位置：
 * $ echo -ne "\e[ q"
 *
 * 虽然许多终端仿真器都这样做，但它不符合规范。 xterm 是一个
 * 设置闪烁块而不是配置的闪烁块的示例终端，与 st 相同。
 */
#define DEFAULT_CURSOR_PATCH 0

/* 按退格键返回 BS，按删除键返回 DEL。
 * https://st.suckless.org/patches/delkey/
 */
#define DELKEY_PATCH 0

/* 该补丁添加了全局禁用粗体字体的选项。
 * https://st.suckless.org/patches/disable_bold_italic_fonts/
 */
#define DISABLE_BOLD_FONTS_PATCH 0

/* 此补丁添加了全局禁用斜体字体的选项。
 * https://st.suckless.org/patches/disable_bold_italic_fonts/
 */
#define DISABLE_ITALIC_FONTS_PATCH 0

/* 该补丁添加了全局禁用罗马字体的选项。
 * https://st.suckless.org/patches/disable_bold_italic_fonts/
 */
#define DISABLE_ROMAN_FONTS_PATCH 0

/* 此补丁使光标颜色与当前单元格颜色相反。
 * https://st.suckless.org/patches/dynamic-cursor-color/
 */
#define DYNAMIC_CURSOR_COLOR_PATCH 0

/* NOTE: 通过管道读写st的屏幕, e.g. pass info to dmenu.
 * https://st.suckless.org/patches/externalpipe/
 */
#define EXTERNALPIPE_PATCH 1

/* NOTE: 该补丁通过两种方式改进和扩展了 externalpipe 补丁：
 * - 它可以防止在 SIGCHILD 上设置的信号处理程序重置，当
 * 执行外部进程的分叉进程退出并且
 * - 它添加了externalpipein函数来重定向标准输出
 * 外部命令到 pty 的从机大小，即，好像
 * 外部程序已在终端上手动执行
 *
 * 它可用于将所需的转义序列发送到终端
 * 键盘快捷键。创建该补丁是为了利用动态颜色
 * 使用 OSC 转义序列来更改终端颜色的工具。
 *
 * 此补丁依赖于启用 EXTERNALPIPE_PATCH。
 *
 * https://github.com/sos4nt/dynamic-colors
 * https://lists.suckless.org/hackers/2004/17218.html
 */
#define EXTERNALPIPEIN_PATCH 1

/* 该补丁允许命令行应用程序使用所有花哨的组合键
 * 可用于 GUI 应用程序。
 * https://st.suckless.org/patches/fix_keyboard_input/
 */
#define FIXKEYBOARDINPUT_PATCH 0

/* 该补丁允许您添加默认字体之外的备用字体。某些字形可能不存在于
 * 默认字体。对于这个字形，st 使用 font-config 并尝试首先在字体缓存中找到它们。
 * 此补丁将 font2 变量中定义的字体附加到字体缓存的开头。
 * 因此它们将首先用于默认字体中不存在的字形。
 * https://st.suckless.org/patches/font2/
 */
#define FONT2_PATCH 0

/* 该补丁增加了将 st 切换到全屏模式的功能。
 * 定义了两个键绑定：F11（其他应用程序中常见）和 Alt+Enter
 * 与默认的 xterm 行为相匹配。
 * https://st.suckless.org/patches/fullscreen/
 */
#define FULLSCREEN_PATCH 0

/* NOTE: 每当按下某个键时隐藏 X 光标，并在鼠标移入时显示它
 * 终端窗口。
 * https://st.suckless.org/patches/hidecursor/
 */
#define HIDECURSOR_PATCH 1

/* 当窗口失去焦点时，此补丁会隐藏终端光标（而不是显示空心）
 * 光标）。
 * https://www.reddit.com/r/suckless/comments/nvee8h/how_to_hide_cursor_in_st_is_there_a_patch_for_it/
 */
#define HIDE_TERMINAL_CURSOR_PATCH 0

/* 此补丁添加了一个键绑定，可让您反转 st 的当前颜色方案。
 * 如果您使用深色，这提供了一种暂时切换到浅色方案的简单方法
 * 颜色方案或反之亦然。
 * https://st.suckless.org/patches/invert/
 */
#define INVERT_PATCH 0

/* 按默认绑定 Ctrl+Shift-i 将弹出 dmenu，要求您输入 unicode
 * 将转换为字形然后推送到 st 的代码点。
 * https://st.suckless.org/patches/iso14755/
 */
#define ISO14755_PATCH 0

/* 此补丁允许您使用键盘快捷键在终端上选择文本。
 * 注意：如果与回流补丁结合使用，则可以启用此补丁的改进变体。
 *
 * https://st.suckless.org/patches/keyboard_select/
 */
#define KEYBOARDSELECT_PATCH 0

/* NOTE: 此补丁添加了对使用 Harfbuzz 库进行转换绘制连字的支持
 * 单行的原始文本到包含连字的字形列表。
 * 此补丁依赖于 Harfbuzz 库和头文件进行编译。
 * 需要取消config.mk中相应行的注释才能使用harfbuzz库
 * when including this patch.
 * https://github.com/cog1to/st-ligatures
 * https://st.suckless.org/patches/ligatures/
 */
#define LIGATURES_PATCH 1

/* 此补丁通过强制显示默认值使 st 忽略终端颜色属性
 * 仅前景色和背景色 - 形成单色外观。想法参考。
 * https://www.reddit.com/r/suckless/comments/ixbx6z/how_to_use_black_and_white_only_for_st/
 */
#define MONOCHROME_PATCH 0

/* 此补丁使用从 .png 文件读取的图标设置 _NET_WM_ICON X 属性。
 * 此补丁依赖于 GD 图形库和标头来编译。
 * 使用gd库需要取消config.mk中相应行的注释。
 *
 * The default location for the .png file is:
 *    - /usr/local/share/pixmaps/st.png
 *
 * https://st.suckless.org/patches/netwmicon/
 */
#define NETWMICON_PATCH 0

/* 此补丁使用从 Farbfeld 图像读取的图标设置 _NET_WM_ICON X 属性。
 * 这个补丁的好处是你不需要额外依赖外部
 * 用于读取和转换 Farbfeld 图像的库。
 *
 * Farbfeld 图像的默认位置是：
 *    - /usr/local/share/pixmaps/st.ff
 *
 * 使用此补丁时，请记住将 config.mk 中的 ICONNAME 从 st.png 更改为 st.ff。
 *
 * 将 .png 转换为 farbfeld 的示例命令：
 *    $ png2ff < st.png > st.ff
 *
 * https://tools.suckless.org/farbfeld/
 * https://github.com/bakkeby/patches/wiki/netwmicon/
 */
#define NETWMICON_FF_PATCH 0

/* 此补丁使用 st 的硬编码图标设置 _NET_WM_ICON X 属性。这是
 * 早于从 .png 文件读取图像的版本的原始版本。
 * https://st.suckless.org/patches/netwmicon/
 */
#define NETWMICON_LEGACY_PATCH 0

/* 此补丁允许您使用 Ctrl-Shift-Return 生成新的 st 终端。它将具有
 * 与原始 st 实例相同的 CWD（当前工作目录）。
 * https://st.suckless.org/patches/newterm/
 */
#define NEWTERM_PATCH 0

/* 此补丁将为 st 窗口设置 _MOTIF_WM_HINTS 属性，如果窗口管理器
 *尊重它，将显示没有窗饰的st窗。
 *
 * 在 dwm 中，如果应用了装饰提示补丁，那么 st 窗口将在没有
 * 边界。在 GNOME 和 KDE 中，窗口启动时应该没有窗口标题。
 */
#define NO_WINDOW_DECORATIONS_PATCH 0

/* 在用户定义的浏览器中打开剪贴板的内容。
 * https://st.suckless.org/patches/open_copied_url/
 */
#define OPENCOPIED_PATCH 0

/* 这个补丁允许点击 URL 时直接打开它们。这可能不适用于
 * 所有终端应用程序。
 *
 * https://www.reddit.com/r/suckless/comments/cc83om/st_open_url/
 */
#define OPENURLONCLICK_PATCH 0

/* 该补丁允许 st 通过 OSC 7 转义获取当前工作目录
 * shell 发出的序列。必须与 newterm 补丁一起使用。
 *
 * https://codeberg.org/dnkl/foot/wiki#spawning-new-terminal-instances-in-the-current-working-directory
 * https://github.com/veltza/st-sx/commit/817865c2c6ed905af8849580e58bdcf399216fbd
 */
#define OSC7_PATCH 0

/* NOTE: 该补丁允许利用 OSC 133 转义序列在提示之间跳转
 * 由炮弹发射。必须与回流或回滚补丁一起使用。
 *
 * https://codeberg.org/dnkl/foot#jumping-between-prompts
 */
#define OSC133_PATCH 1

/* NOTE: 回流。
 * 当终端窗口再次变大时，允许调整 st 的大小而不切断文本。
 * 当终端窗口变小时，文本会换行。
 * 带有回滚功能。
 */
#define REFLOW_PATCH 1

/* 该补丁允许您指定大小与单元格宽度相关的边框
 * 在终端中。
 * https://st.suckless.org/patches/relativeborder/
 */
#define RELATIVEBORDER_PATCH 0

/* 此项目允许您右键单击选定的文本以将其发送到管道
 * 选择的程序，例如打开文件、查看图像、打开 URL。
 * https://st.suckless.org/patches/right_click_to_plumb/
 */
#define RIGHTCLICKTOPLUMB_PATCH 0

/* 使用 Shift+{PageUp, PageDown} 向后滚动终端输出。
 * https://st.suckless.org/patches/scrollback/
 */
#define SCROLLBACK_PATCH 0

/* 使用 Shift+MouseWheel 向后滚动终端输出。
 * 此变体取决于启用的 SCROLLBACK_PATCH。
 * https://st.suckless.org/patches/scrollback/
 */
#define SCROLLBACK_MOUSE_PATCH 0

/* 使用鼠标滚轮向后滚动终端输出（不在 MODE_ALTSCREEN 中时）。
 * 此变体取决于启用的 SCROLLBACK_PATCH。
 * https://st.suckless.org/patches/scrollback/
 */
#define SCROLLBACK_MOUSE_ALTSCREEN_PATCH 0

/* NOTE: 此补丁将两个颜色设置 Selectionfg 和 Selectionbg 添加到 config.def.h。
 * 这些定义了选择屏幕上的文本时使用的前景色和背景色
 * 用鼠标。这消除了简单地反转颜色的默认行为。
 * https://st.suckless.org/patches/selectioncolors/
 */
#define SELECTION_COLORS_PATCH 1

/* This is the single drawable buffer patch as outlined in the FAQ to get images
 * in w3m to display. While this patch does not break the alpha patch it images
 * are not shown in w3m if the alpha patch is applied.
 */
#define SINGLE_DRAWABLE_BUFFER_PATCH 0

/* NOTE: 此补丁添加了对 ST 的 SIXEL 图形支持。
 * 请注意 patch/sixel.c/sixel_hls.c 来自 mintty，根据 GPL 授权。
 * 已知问题：
 * - 渲染六像素图形可能会导致光标放置异常，这是
 * 并非特定于 st 的这种变体 - 同样的问题也存在于
 * xterm 实现。这可能是六倍高度的问题
 * 没有被正确检测到。
 *
 * 请注意，包含此补丁时需要取消 config.mk 中相应行的注释。
 * 该补丁与W3M补丁不兼容。
 *
 * https://gist.github.com/saitoha/70e0fdf22e3e8f63ce937c7f7da71809
 */
#define SIXEL_PATCH 1

/* 该页面允许客户端嵌入到 st 窗口中，如果您倾向于
 * 从终端启动X个应用程序。例如：
 *
 *   $ surf -e $WINDOWID
 *
 * 该行为类似于计划 9，其中应用程序可以接管窗口。
 * URL TBC
 */
#define ST_EMBEDDER_PATCH 0

/* 当 bg/fg 相同时，使用反转的 defaultbg/fg 进行选择。
 * https://st.suckless.org/patches/spoiler/
 */
#define SPOILER_PATCH 0

/* 该补丁将运行程序订阅时的鼠标形状更改为全局默认值
 * 用于鼠标事件，例如，在 ranger 和 fzf 等程序中。它模仿行为
 * 由 vte 终端（如白蚁）显示。
 * https://st.suckless.org/patches/swapmouse/
 */
#define SWAPMOUSE_PATCH 0

/* NOTE: 此补丁在 st 中添加了同步更新/应用程序同步支持。
 * 除非应用程序使用同步更新转义，否则这不会产生任何影响
 * 序列。使用此补丁，tmux 中几乎所有光标闪烁都被消除，并且 tmux 检测到
 * it automatically via terminfo.
 *
 *注意：此项目将更改 st.info 以促进对额外转义序列的支持，这可以
 * 如果您不使用此补丁，可能会导致应用程序行为异常。尝试删除或
 * 如果这导致问题，请注释掉 st.info 中的相应行。
 *
 * https://st.suckless.org/patches/sync/
 */
#define SYNC_PATCH 1

/* 使用光标主题中的 xterm 光标，而不是默认的 X 光标。
 * 需要取消config.mk中相应行的注释才能使用-lXcursor库
 * 当包含此补丁时。
 * https://st.suckless.org/patches/themed_cursor/
 */
#define THEMED_CURSOR_PATCH 0

/* NOTE: 添加对特殊下划线的支持。
 *
 * 测试命令示例：
 *    $ echo -e "\e[4:3m\e[58:5:10munderline\e[0m"
 *                  ^ ^     ^ ^  ^- sets terminal color 10
 *                  | |     |  \- indicates that terminal colors should be used
 *                  | |      \- indicates that underline color is being set
 *                  |  \- sets underline style to curvy
 *                   \- set underline
 *
 * 注意：此补丁会更改 st.info 以促进对额外转义序列的支持，这可以
 * 如果您不使用此补丁，可能会导致应用程序行为不当。尝试删除或
 * 如果这导致问题，请注释掉 st.info 中的相应行。
 *
 * https://st.suckless.org/patches/undercurl/
 */
#define UNDERCURL_PATCH 1

/* NOTE: 允许鼠标滚动而无需修饰键，无论使用外部的替代屏幕如何
 * 滚动程序。
 * https://st.suckless.org/patches/universcroll/
 */
#define UNIVERSCROLL_PATCH 0

/* 使用 XftFontMatch 代替 FcFontMatch。
 *
 * XftFontMatch 调用 XftDefaultSubstitute，根据其配置各种匹配属性
 * 用户配置的 Xft 默认值 (xrdb) 以及根据当前显示和
 * 屏幕。最重要的是，屏幕 DPI 是计算出来的 [1]。如果没有这个，st 使用“默认”
 * DPI of 75 [2].
 *
 * [1]: https://cgit.freedesktop.org/xorg/lib/libXft/tree/src/xftdpy.c?id=libXft-2.3.2#n535
 * [2]: https://cgit.freedesktop.org/fontconfig/tree/src/fcdefault.c?id=2.11.1#n255
 *
 * https://git.suckless.org/st/commit/528241aa3835e2f1f052abeeaf891737712955a0.html
 */
#define USE_XFTFONTMATCH_PATCH 0

/* 如果您在 config.h 中设置了更大的 chscale，则在可用空间中垂直居中线
 * https://st.suckless.org/patches/vertcenter/
 */
#define VERTCENTER_PATCH 0

/* 在终端响铃事件上短暂反转窗口内容。
 * https://st.suckless.org/patches/visualbell/
 */
#define VISUALBELL_1_PATCH 0

/* 添加对 w3m 图像的支持。
 * https://st.suckless.org/patches/w3m/
 */
#define W3M_PATCH 0

/* 在 st 中添加适当的字形渲染，允许按原样绘制宽字形，而不是
 * 渲染较小或剪切的字形。
 * https://github.com/Dreomite/st/commit/e3b821dcb3511d60341dec35ee05a4a0abfef7f2
 * https://www.reddit.com/r/suckless/comments/jt90ai/update_support_for_proper_glyph_rendering_in_st/
 */
#define WIDE_GLYPHS_PATCH 0

/* 有一个已知问题，即 Google 的可变字体 (VF) 可能会出现字母数字
 * 在使用 Xft 的程序中太宽，例如 Inconsolata v3.000。
 *
 * 这打算作为临时补丁/破解版，直到（如果）这在 Xft 库中得到修复
 * 本身。
 *
 * https://github.com/googlefonts/Inconsolata/issues/42#issuecomment-737508890
 */
#define WIDE_GLYPH_SPACING_PATCH 0

/* 该补丁允许用户指定 st 应用作工作目录的初始路径。
 * https://st.suckless.org/patches/workingdir/
 */
#define WORKINGDIR_PATCH 0

/* 此补丁添加了通过 Xresources 配置 st 的功能。启动时，st 将读取并
 * 应用config.h中resources[]数组中指定的资源。
 * https://st.suckless.org/patches/xresources/
 */
#define XRESOURCES_PATCH 0

/* 此补丁添加了在收到 SIGUSR1 信号时重新加载 Xresources 配置的功能
 * e.g.: killall -USR1 st
 * 取决于 XRESOURCES_PATCH。
 */
#define XRESOURCES_RELOAD_PATCH 0
